package cn.actoncode.boot.framework.zhipu.core.bean;

import cn.actoncode.boot.framework.common.exception.ErrorCode;
import com.alibaba.fastjson2.annotation.JSONField;
import lombok.Builder;
import lombok.Data;

@Data
@Builder
public class ChatGLMSocketResponse {

    /**
     * 文本
     */
    private String text;

    /**
     * 元信息
     */
    private ChatGLMMeta meta;

    /**
     * 错误码
     */
    private ErrorCode errorCode;

    /**
     * 错误消息
     */
    private String msg;


    @Data
    public static class ChatGLMMeta {

        /**
         * 用户在客户端请求时提交的任务编号或者平台生成的任务编号
         */
        @JSONField(name = "request_id")
        private String requestId;

        /**
         * 智谱AI开放平台生成的任务订单号，调用请求结果接口时请使用此订单号
         */
        @JSONField(name = "task_id")
        private String taskId;

        /**
         * 处理状态，PROCESSING（处理中），SUCCESS（成功），FAIL（失败）<br/> 注：处理中状态需通过查询获取结果
         */
        @JSONField(name = "task_status")
        private String taskStatus;

        /**
         * 本次模型调用的 tokens 数量统计
         */
        @JSONField(name = "usage")
        private ChatGLMUsage usage;
    }
}
